Method and Arrangement for Improved Turbo Decoding

ABSTRACT

In a method for improved turbo decoding in a wireless communication system, jointly allocating (S 1 O) a predetermined maximum number of decoding iterations to a batch of received decoding jobs; and consecutively performing decoding iterations (S 20 ) adaptively for each job in the batch until a convergence criteria is reached for each job in the batch, or until the predetermined maximum number of iterations for the batch is reached.

TECHNICAL FIELD

The present invention relates to telecommunication system in general, specifically to method and arrangements enabling improved turbo decoding in such systems.

BACKGROUND

A turbo decoder improves soft values through an iterative procedure. Either it can be run with a fixed number of iterations, or adaptive stop criteria can be used to decide when the process has converged. In order to decode a frame e.g. a block of data, the turbo decoder performs several iterations. For the first iteration, it assumes that the probabilities of 0 and 1 are equal and based on the channel information bits it produces a soft decision output for each data bit. For other iterations, the decoder will use the soft output of the other decoder as a priori probability to perform the next iteration.

Even if a turbo decoder algorithm predicts an average number of iterations N for a frame or job many more may be needed in the worst case, e.g. during a fading dip. If a fixed number of iterations is used, this fixed number has to correspond to the worst case, but even if an adaptive stop algorithm is used the hardware has to be dimensioned for the number of iterations needed in the worst case.

Due to a finite number of resources, the allowed number of iterations must be limited. This number will in the following disclosure be denoted the maximum number of iterations.

Many criteria for adaptive stop are known in prior art. Either the quality of the soft values, or the convergence of hard decisions based on the soft values can be used.

In a WCDMA system with power control, the system tries to control the transmit power in such a way that a certain block error rate (BLER) target is obtained. If the turbo decoder is allowed to always converge, the BLER will be very small and the power control loop will not work. Using e.g. a maximum number of iterations ensures that, depending on the C/I, the BLER is not always equal to zero. If, however, for an adaptive stop algorithm the maximum number of iterations is set per user, it will be equal to the number of iterations needed in the worst case.

The average number of iterations needed for a turbo decoder job to converge depends on the coding scheme used and the requirement on the carrier over interference power ratio (C/I) expected by the receiver. In general, this can be expressed by saying that the average number of iterations depends on the service type.

Even with an adaptive stop criterion with an average number of iterations equal to N is used, many more iterations might be needed in the worst case. If a maximum number of iterations per user is used, then this maximum number will be equal to the number of iterations used in a fixed number of iterations algorithms, and the adaptive stop cannot be used to save resources.

To avoid momentary overload, on a digital signal processor (DSP) or any other type of platform implementing a receiver, more resources than corresponds to the average number of iteration per user need to be allocated. These resources will not be fully utilized. In certain cases, more than 100% more resources than is needed on average, have to be allocated. This has a severe impact on the capacity of the receiver.

Therefore, there is a need for methods and arrangements for improved Turbo decoding.

SUMMARY

An object of the present invention is to provide an improved turbo decoder and turbo decoding arrangement.

A further object is to provide an improved turbo decoder and turbo decoding arrangement utilizing an adaptive stop algorithm.

This object is achieved in accordance with the attached claims.

Briefly, in a method for improved turbo decoding in a wireless communication system jointly allocating (S10) a predetermined maximum number of decoding iterations to a batch of received decoding jobs; and consecutively performing decoding iterations (S20) adaptively for each job in said batch until a convergence criteria is reached for each job in the batch, or until said predetermined maximum number of iterations for the batch is reached.

Advantages of the present invention comprise:

-   -   Using the result of an adaptive stop algorithm to pool the turbo         iterations between several decoder jobs to reduce the turbo         processing and the number of allocated turbo resources.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention, together with further objects and advantages thereof, may best be understood by referring to the following description taken together with the accompanying drawings, in which:

FIG. 1 is a schematic flow chart of an embodiment of the method of the present invention;

FIG. 2 is a schematic flow chart of a further embodiment of the method of the present invention;

FIG. 3 is a schematic block schedule of an embodiment of an arrangement according to the present invention;

FIG. 4 is a further schematic block schedule of an embodiment of an arrangement according to the present invention.

ABBREVIATIONS

3GPP 3'd Generation Partnership Project

BLER BLock Error Rate

C/I Carrier over Interference power ratio

DSP Digital Signal Processor

SIR target Signal over Interference Ratio target

UMTS Universal Mobile Terrestrial System

WCDMA Wideband Code Division Multiple Access

DETAILED DESCRIPTION

The present invention will be discussed in the context of a general wireless communication network where a plurality of decoding jobs from multiple users are received consecutively at a decoder arrangement. The users and or jobs may have various associated service type requirements.

With reference to FIG. 1, an embodiment of the present invention will be described below.

In its most general aspect, the present invention enables that for a given service type a number of available turbo iterations are shared between several decoder jobs. This enables a significant reduction in the total maximum number of iterations needed, and less Turbo decoder resources need to be allocated.

Basically, a subgroup or batch of received turbo decoder jobs are allocated S10 a predetermined maximum number of decoding iterations. Subsequently, in consecutive reception order or some other predetermined order, the jobs in the subgroup or batch are subjected to an adaptive number of decoding iterations S20, in which a first job in the batch is allocated the predetermined maximum number of decoding iterations. The iterations are continued either until the job fulfills a convergence criterion or until the predetermined number of iterations is used up.

If the convergence criterion is fulfilled, and there are still remaining allocated iterations, the next consecutive job in the subgroup or batch is processed. If a job has not converged before the allocated number of decoding iterations have been consumed, the job is declared as having a block error. Similarly, any remaining job in the subgroup is also declared as having a block error. In other words, the remaining jobs are not allowed access to the decoding resource. Instead, the method according to the disclosure moves on to a next subgroup of decoding jobs and repeats the above described process.

Below, a further embodiment and description of the invention is disclosed. Consider a turbo decoder resource, and let

Q=(J _(1,) J ₂ , J ₃ , J ₄ , J ₅; . . . )

where Q is a master queue of turbo decoding jobs J for this resource. The queued jobs will be subjected to the decoding process in consecutive order, e.g. job J₁ will be served first, job J₂ next and so on. The order of the jobs within the master queue is determined by e.g. the order in which they arrive to the resource, timing constraints, and any associated priorities of the respective jobs. Also, other factors can be taken into consideration, which will be further described below.

Next, for a given service type S_(i) form a sub-queue Q_(i) in step S0

Q _(i)=(J _(k) ₁ _(,) J _(k) ₂ , J _(k) ₃ , J _(k) ₅ , J _(k) ₆ ; . . . )k ₁ ≦k ₂ ≦k ₃ . . .

consisting of all jobs in the previously described master queue Q with the specific service type S_(i). Note that the service type can be distinguished by coding scheme, BLER target, required C/I for the BLER target, and the average number of iterations N_(i) needed for convergence at the given C/I. The skilled person realizes that also other factors determined the service type of each specific job.

The service queue or sub queue Q_(i) is divided, in step S1, into a plurality of consecutive batches of D_(i) number of jobs. A predetermined number M_(i) of decoding iterations per job is determined.

Note that a specific user might have zero, one or several jobs in the same batch. In the extreme case of only one user with service type S_(i), all jobs in Q_(i) are from this user. Note that the different sub queues, corresponding to different service types, are preferably interleaved in time according to the ordering given by the master queue Q.

Subsequently, consider only one of the sub-queues Q_(i). All the jobs in one batch of length D_(i) will share M_(i)·D_(i) iterations, in a sense that no job in this batch will be stopped before it has converged, or a total of M_(i)·D_(i) have been used for all jobs in the batch.

If all the M_(i)·D_(i) iterations have been used before the end of the batch, the remaining turbo jobs are thrown away and the data is lost. If the end of the batch is reached before all the iterations are used, then the next batch is considered.

Note that at one specific time there might not be enough jobs to fill one batch of length D_(i). In this case the M_(i)·D_(i) iterations will be shared with future jobs until D_(i) jobs have been processed.

It can be shown, from simulations, that M_(i)≈N_(i) or even M_(i)≦N_(i) is sufficient, where N_(i) is an average number of iterations per job for a certain service type S_(i). In this way, only resources corresponding to at most N_(i) iterations per job need to be allocated.

The present invention can be implemented in an algorithm according to the following:

Consider only one of the sub queues Q_(i), the queue is divide into a plurality of batches each comprising D_(i) number of jobs. Let K_(i) denote the remaining number of iterations for the jobs in a batch.

1. When the first job in a batch arrives to the Turbo decoding resource, then set K_(i)=M_(i)·D_(i).

2. When a job arrives to the resource, then set the maximum number of iterations for this job equal to K_(i), and run the job. Let L_(i) be the actual number of iterations used for the job.

3. After a job has run on the resource set K_(i)=K_(i)−L_(i). If K_(i) becomes equal to zero, then all the following jobs in the batch is declared to have a block error, and are not allowed access to the resource.

4. If a turbo decoder job does not converge in the allowed maximum number of iterations, then it is declared to have a block error.

One aspect that needs further attention is the fact that by decoding the jobs within a batch consecutively and potentially discarding the remaining jobs in a batch, some users may always end up in the end of a batch and thereby be discarded frequently.

According to a specific embodiment of the present invention, the jobs associated with different users are permutated at the decoding resource, thereby preventing the same user from always ending up at the end of a batch. A further potential remedy is to ensure that the length of the sub-queue is shorter than the number of users, or at least does not have a common factor with the number of users.

With reference to FIG. 3, an arrangement according to an embodiment of the present invention will be described.

The decoder arrangement 1 includes, in addition to any conventional and known units for reception and decoding received jobs, a unit 10 adapted for allocating a predetermined maximum number of decoder iterations to a batch of received decoder jobs, a unit 20 adapted for performing consecutive and adaptive decoding iterations to the jobs within each batch based on the allocated predetermined maximum number of decoder iterations. The unit 20 is further adapted to perform the decoder iterations for each job until a convergence criterion is met, or until the allocated number of decoder iterations for the batch have been consumed.

According to a further embodiment, also referring to FIG. 3, the arrangement 1 also includes a sub-queue unit 30 adapted for dividing a received plurality of decoder jobs into sub-groups or sub-queues based on service type. In other words, each sub-queue comprises jobs with a certain service type. In addition, the arrangement 1 includes a batch provider unit 40 adapted to further divide each sub-queue into a plurality of batches, each batch comprising less than or up to a set number of decoding jobs.

The arrangement according to the invention can be implemented as hardware in a hardware accelerator HWA which is in communication with a digital signal processor DSP. It is equally applicable that the arrangement is implemented as software in a DSP. Both embodiments are indicated by the dotted boxes in FIG. 4.

Advantages of the present invention comprise:

-   -   Let N_(i) be the average number of Turbo iterations needed for a         certain service S_(i). Using the above solution the full gain of         using approximately N_(i) iterations per job can be obtained.     -   Using the result of an adaptive stop algorithm to pool the turbo         iterations between several decoder jobs to reduce the turbo         processing and the number of allocated turbo resources.

It will be understood by those skilled in the art that various modifications and changes may be made to the present invention without departure from the scope thereof, which is defined by the appended claims. 

1-13. (canceled)
 14. A method for improved turbo decoding in a wireless communication system, the method comprising: jointly allocating a predetermined maximum number of decoding iterations to a batch of received decoding jobs; and consecutively decoding the jobs in said batch and performing an adaptive number of decoding iterations for each job, by, for any given job, performing decoding iterations until a convergence criterion for that job is reached, or until said predetermined maximum number of iterations for the batch is exhausted, and subsequently applying any decoding iterations not exhausted from said predetermined maximum number of decoding iterations to a consecutive job in said batch.
 15. The method of claim 14, further comprising, when said predetermined maximum number of iterations for the batch has been exhausted, identifying any remaining consecutive jobs in the batch as having block errors.
 16. The method of claim 15, further comprising discarding jobs identified as having a block error.
 17. The method of claim 14, further comprising, if the predetermined maximum number of iterations for the batch has been exhausted but the convergence criterion for a current job has not been reached, identifying that job as having a block error.
 18. The method of claim 17, further comprising discarding jobs identified as having a block error.
 19. The method of claim 14, further comprising: initially arranging a plurality of received decoding jobs into a plurality of sub-queues based on service type; dividing each sub-queue into a plurality of consecutive batches, each batch comprising a predetermined number of decoding jobs; and allocating a predetermined maximum number of decoding iterations to each batch in each sub-queue, the predetermined maximum number allocated to a batch in any given sub-queue depending on the service type associated with that sub-queue.
 20. The method of claim 19, wherein a service type is defined by one of or a combination of coding scheme, block error rate (BLER) target, required carrier-to-interference ratio (C/I) for the BLER target, and average number of iterations needed for convergence at a required C/I.
 21. The method of claim 19, wherein said predetermined number of decoding iterations for a service type is based on an average number of iterations for that service type.
 22. The method of claim 19, further comprising, for each sub-queue, determining the order of said batches for consecutive decoding based on a respective user associated with each job.
 23. An apparatus for improved turbo decoding in a wireless communication system, the apparatus comprising: an allocation circuit configured to jointly allocate a predetermined number of decoding iterations to batch of received decoding jobs; and a decoding circuit configured to consecutively decode the jobs in said batch and perform an adaptive number of decoding iterations for each job, by, for any given job, performing decoding iterations until a convergence criterion for that job is reached, or until said predetermined maximum number of iterations for the batch is exhausted, and subsequently applying any decoding iterations not exhausted from said predetermined maximum number of decoding iterations to a consecutive job in said batch.
 24. The apparatus of claim 23, wherein the apparatus is provided in a digital signal processor (DSP).
 25. The apparatus of claim 23, wherein the apparatus is provided in a hardware accelerator (HWA).
 26. The apparatus of claim 23, wherein the apparatus comprises a turbo decoder.
 27. The apparatus of claim 23, wherein the decoding circuit is further configured to, when said predetermined maximum number of iterations for the batch has been exhausted, identify any remaining consecutive jobs in the batch as having block errors.
 28. The apparatus of claim 27, wherein the decoding circuit is further configured to discard jobs identified as having a block error.
 29. The apparatus of claim 23, wherein the decoding circuit is further configured to, if the predetermined maximum number of iterations for the batch has been exhausted but the convergence criterion for a current job has not been reached, identify that job as having a block error.
 30. The apparatus of claim 23, further comprising: a sub-queue circuit configured to initially arrange a plurality of received decoding jobs into a plurality of sub-queues based on service type; and a batch provider circuit configured to divide each sub-queue into a plurality of consecutive batches, each batch comprising a predetermined number of decoding jobs; and wherein the allocating circuit is further configured to allocate a predetermined maximum number of decoding iterations to each batch in each sub-queue, the predetermined maximum number allocated to a batch in any given sub-queue depending on the service type associated with that sub-queue.
 31. The apparatus of claim 30, wherein a service type is defined by one of or a combination of coding scheme, block error rate (BLER) target, required carrier-to-interference ratio (C/I) for the BLER target, and average number of iterations needed for convergence at a required C/I.
 32. The apparatus of claim 30, wherein said predetermined number of decoding iterations for a service type is based on an average number of iterations for that service type.
 33. The apparatus of claim 30, wherein the decoding circuit is configured to, for each sub-queue, determine the order of said batches for consecutive decoding based on a respective user associated with each job. 